18-2 r衪

通常我們將可辨識的語句放在一個文字檔案,以唐詩為三百首例,若希望我們的辨識系統能夠辨識使用者以語音輸入的一句唐詩,那我們共可抽出 3221 句,放在 tangPoem.rt 檔案內,如下:

Example(tangPoem.rt):

Hint
rt 代表 recognizable text。

對電腦而言,第一個步驟,就是要知道這些文句如何發音。如果 RT 的數量不大,我們當然可以使用手工來標注音,但是對於大量的 RT 而言,就要靠電腦來自動進行標音工作。首先,電腦必須知道每一個國字的注音,於是我們必須有一個 WPA 檔案,中文範例如下:

... 邶 bei ㄅㄟ 采 cai ㄘㄞ 金 jiN ㄐㄧㄣ 長 JaG ㄓㄤ 長 CaG ㄔㄤ 門 mrN ㄇㄣ 阜 fu ㄈㄨ ...

Hint
wpa 代表 word to phonetic alphabet,也就是由字到注音或音標的對照表。

在上述範例中,第一欄是國字,第二欄是對應於注音的音節代號,第三欄則是國語注音。由於語音辨識系統目前並沒有用到音調資訊,所以上述的表格並沒有包含音調資訊。此外,此表格也列出了破音字,例如「長」的發音有兩個。 英文範例如下:

... eiszner ay z n er eitel ay t ah l either iy dh er#ay dh er eitzen ay t z ah n ejaculate ih jh ae k y uw l ey t ... 在上述範例中,每一個英文詞彙就對應到一個發音(以音標代號表示,例如 ae 就是蝴蝶音),同樣也會發生破音字,例如 either 就有兩種發音,此時我們使用 # 來分隔這兩種發音。

Hint
通常我們不直接使用注音符號或英文音標,因為文字格式比較難處理,因此我們多用音節代號或音標代號來處理。

有了WPA檔案後,我們就可以進行「暴力法」的注音,以唐詩的「朝辭白帝彩雲間」來說,根據破音字發音的各種組合就可以標示成四種發音:

  1. 朝(ㄓㄠ )辭白(ㄅㄞˊ)帝彩雲間
  2. 朝(ㄓㄠ )辭白(ㄅㄛˊ)帝彩雲間
  3. 朝(ㄔㄠˊ)辭白(ㄅㄞˊ)帝彩雲間
  4. 朝(ㄔㄠˊ)辭白(ㄅㄛˊ)帝彩雲間
而「千里江崚一日還」則可標示成
  1. 千里江崚一日還(ㄏㄨㄢˊ)
  2. 千里江崚一日還(ㄏㄞˊ)
  3. 千里江崚一日還(ㄒㄩㄢˊ)
因此我們可以根據此種暴力法,產生 SYL 檔案,此檔案以音節代號列出每一句可能的發音,範例如下: ... Cau-cy-bai-di-cai-YN-jieN 56 Cau-cy-buo-di-cai-YN-jieN 56 Jau-cy-bai-di-cai-YN-jieN 56 Jau-cy-buo-di-cai-YN-jieN 56 cieN-li-jiaG-lG-i-Ry-hai 57 cieN-li-jiaG-lG-i-Ry-huaN 57 cieN-li-jiaG-lG-i-Ry-sYaN 57 ... 在上述範例中,前四句是「朝辭白帝彩雲間」的所有可能發音,而後三句則是「千里江崚一日還」的所有可能發音,56 與 57 則是代表這兩句在 rt 檔案出現的位置(列數),以便反查。此種「暴力注音法」的優缺點如下: 另外一種方法,則是「詞庫標音法」,我們必須先見一個破音字的詞庫,把所有破音字可能出現的詞彙列出來,例如: ... 口吃 0073-1252 吃軟不吃硬 0021-3423-2094-0021-2814 吃喝玩樂 0021-0371-3382-0414 吃飯 0021-1284 吃裡扒外 0021-1903-0232-3184 ... 以「口吃」來說,對應的資料是:
  1. 007(ㄎㄡˇ的音碼)3(第三聲)
  2. 125(ㄐㄧˊ的音碼)2(第二聲)
有了破音字詞庫後,我們就可以進行「詞庫標音法」,有兩種作法:
  1. Maximum matching:
    1. 從頭比對:我喜歡到廟口吃小吃 ===> 我|喜歡|到|廟口|吃|小吃
    2. 從尾比對:我喜歡到廟口吃小吃 ===> 我|喜歡|到|廟|口吃|小吃
  2. Dynamic programming:(細節待補充)
「詞庫標音法」的優缺點如下: 在英文方面,則會遇到新的詞彙,這些詞彙可能不出現於 WPA 檔案之中,例如商標名 Benq 或 google,或是人名 Schwarzenegger 或地名 Rocktop 等,此時就需要人工輔助標示,或是由電腦進行發音的預測。
Audio Signal Processing and Recognition (音訊處理與辨識)